There is always a desire to be able to implement a system as cheaply as possible and to be able to use resources as effectively as possible.
In a radio receiver implementation there are certain functions that are carried out in dedicated circuitry and other functions that may be carried out in dedicated circuitry or using a programmable processor. If the radio receiver is part of a host it is not evident what receiver functions should be performed using the processing resources of the host itself and what functions should be performed using dedicated receiver circuitry.
Multiple Access (MA) refers to protocols that enable multiple communication channels to use a frequency band.
Code Division Multiple Access (CDMA) is a protocol that enables multiple communication channels to share a single frequency band by using orthogonal chipping codes to spread the data across the full frequency band. The chipping codes are also called pseudo random noise codes. CDMA is used in some mobile cellular telephone systems such as IS-95, cdma-2000, UMTS etc and is also used in other communication systems. For example, some Global Navigation Satellite (GNSS) Systems such as Global Positioning Systems (GPS) and the proposed European system Galileo use CDMA. A different chipping code is assigned to each satellite communication channel but all the satellite communication channels share the same frequency band.
Another Global Navigation Satellite System, GLONASS, uses frequency division multiple access. A different frequency band is assigned to each satellite communication channel but all the satellite communication channels share the same chipping code.
For the sake of simplicity, reference will now be made to a GNSS receiver, however, it should be appreciated that embodiments of the invention find application in other types of radio receivers.
A GNSS receiver is a complex system. It typically comprises an RF engine for demodulating RF signals, a measurement engine for acquiring the satellite communication channels, for tracking the satellite communication channels and for recovering transmitted data from each of the satellite communication channels and a position engine for solving time and geometric unknowns using the recovered data.
Acquisition is a complex process. The communication channel parameters are unknown and therefore “processing” is required to find those parameters. For a GPS system, which uses CDMA, the unknown parameters of the communication channel are the chipping code, the phase of the chipping code and the exact carrier frequency as modified by, for example, Doppler shifting.
Tracking is a less complex process. The communication parameters are known but need to be maintained. Much less “processing” is required compared to acquisition.
Traditionally the engines have been implemented in dedicated receiver circuitry that demodulates the RF signals, acquires and tracks the communication channels, recovers transmitted data from each of the communication channels and solves the time and geometric unknowns using the recovered data to position the receiver.
Recently ‘software’ receivers have been designed. Dedicated RF circuitry is used as an RF engine to demodulate the RF signals which are stored in memory. A programmed processor is used as the measurement engine and the position engine. It reads the memory, acquires and tracks the communication channels, recovers transmitted data from each of the communication channels and solves the time and geometric unknowns using the recovered data to position the receiver.
Software receivers provide significant flexibility because the measurement and positioning algorithms are implemented using software in a programmable processor. The acquisition, tracking, data recovery and positioning algorithms can be changed according to the navigation system that is being used. Given the development of future GNSS systems such as Galileo, GLONASS and modernization programs of the existing GPS system, this becomes a more attractive solution than one that is fixed in dedicated circuitry.
However, software receivers are computationally intensive and require significant RAM for acquisition and tracking.
This may make the software receiver expensive. It also makes it unsuitable for integration with a host where the software receiver shares host resources with an application because either the resources demanded by the software receiver will interfere with the proper operation of the application or a higher specified and more expensive host will be required.